package tech.xs.common.framework.domain.annotations;

import tech.xs.common.auth.domain.enums.AuthPathWhiteTypeEnum;

import java.lang.annotation.*;

@Documented
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface AuthApi {

    /**
     * 白名单类型
     *
     * @return 白名单类型
     */
    AuthPathWhiteTypeEnum type() default AuthPathWhiteTypeEnum.EMPTY;

    /**
     * 角色编码
     *
     * @return 角色编码列表
     */
    String[] roles() default "";

    /**
     * 权限编码
     *
     * @return 权限编码列表
     */
    String[] permissions() default "";

    /**
     * 是否开启basic授权,默认关闭
     *
     * @return 是否允许basic授权
     */
    // todo 待处理
    boolean basicAuth() default false;
}
